11818
5253
Dette spørgsmål har allerede svar her:
Hvordan returnerer jeg svaret fra et asynkront opkald?
(42 svar)
Lukket for 5 måneder siden.
Så når du kører følgende kode, er svaret fra console.log (ba) udefineret
Men når jeg prøver dette i Chrome V8-konsollen, får jeg den korrekte output, jeg forventer. Jeg er ikke helt sikker på, hvad der foregår her.
lad ba;
funktion Setqa () {
(asynkronisering () => {
afventer hentning ('spørgsmål.json')
. derefter (res => res.json ())
. derefter (async (data) => {
ba = afventer data;
});
}) ();
}
Setqa ();
console.log (ba);
Indholdet af json-filen er følgende:
"spørgsmål": [{
"questionType": "multiple",
"spørgsmål": "Hvordan er vejret",
"svar": "",
"spørgsmål svar": ""
},
{
"questionType": "multiple",
"spørgsmål": "Hvordan har du det i dag?",
"svar": " 1",
"questionAnswer": "textPurpose1"
}
] 
Jeg tror det skal fungere
lad ba;
funktion Setqa () {
returner hentning ('spørgsmål.json')
. derefter (res => res.json ())
. derefter (async (data) => {
ba = afventer data;
});
}
Setqa (). Derefter (() => konsol.log (ba));
Men en bedre tilgang ville være
asynkroniseringsfunktion setQa () {
const res = afventer hentning ('spørgsmål.json');
returnere res.json ();
}
lad ba = afvente setQa ();
|
Er det ikke det svar, du leder efter? Gennemse andre spørgsmål, der er tagget javascript json fetch console.log, eller still dit eget spørgsmål.